package com.mx.ipn.escom.wad.proyecto.usuario.dao;

import java.util.List;
import javax.inject.Named;
import javax.inject.Singleton;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.mx.ipn.escom.wad.proyecto.usuario.model.Usuario;

/**
 * Clase que genera los objetos de acceso a dato (DAO) para la gestión de Usuario
 * @author jorge
 *
 */

@Singleton
@Named("usuarioDao")
public class UsuarioDao extends HibernateDaoSupport{

	public List<Usuario>findAll(){
		return getHibernateTemplate().loadAll(Usuario.class);
	}
	
	public Usuario findById(Integer id){
		return getHibernateTemplate().get(Usuario.class, id);
	}
	
	@SuppressWarnings("unchecked")
	public List<Usuario> findByExample(Usuario entidad){
		return getHibernateTemplate().findByExample(entidad);
	}
	
	public Usuario save(Usuario entidad){
		getHibernateTemplate().save(entidad);
		return entidad;
	}
	
	public Usuario update(Usuario entidad){
		Usuario entidadAux = getHibernateTemplate().merge(entidad);
		getHibernateTemplate().update(entidadAux);
		return entidadAux;
	}
	
	public Usuario delete(Usuario entidad){
		getHibernateTemplate().refresh(entidad);
		getHibernateTemplate().delete(entidad);
		return entidad;
	}
}
